1. Technical Field
This patent application relates in general to network communication, and in particular to real-time network communication.
2. Description of Related Art
The location and exchange of data over computer networks is controlled by various network protocol. For example, the World Wide Web (hereinafter “Web”) is a system of communications protocols that presents information in documents that are capable of being linked to other documents. The documents are stored in a distributed manner across the Internet on the networked computers, and are accessed using programs known as browsers.
The Web is a system of protocols exchanged between a host computer running an application, known as a server, that delivers Web documents, and a user's computer, known as the client. The most fundamental of Internet protocols is Transmission Control Protocol/Internet Protocol, or TCP/IP, which in effect provides a description of the document data being exchanged and a destination for that data.
Web documents are created using a markup language known as html, or Hypertext Markup Language. Generally, a markup language is a set of instructions, or markups that is used to direct a browser how to display and manage a document. Specifically, html defines the format of a Web document and enables hyperlinks to be embedded in the Web document. Hyperlinks are used to connect a document on one host computer to a document on another host computer. The following html paragraph is illustrative.                <P>        Welcome to the home page of <B>ichat, Inc. </B>. We develop <A        HREF=“. . . /products/index.html”>software</A>that expands the        functionality and accessibility of real-time Internet chat systems.        
The html tags “<B> . . . </B>” instructs the browser to display ichat Inc. in bold font. The html tag “<A HREF=” instructs the browser to create a link to a web page referenced by the embedded Uniform Resource Locator (“URL”), which is a type of address, and to use the word “software” embedded between the tags “>. . . <A>” as the hyperlinked word. The link may be a target, which is a word or phrase in another section of the same Web page; a relative link, which is another Web page within the current site, either forward or backward relative to the current page; or an external or absolute link, which is a Web page on another host.
A Web browser or client requests a Web document in accordance with its URL, which typically is furnished either manually by the user, through a Web browser bookmark, or through a hyperlink embedded in an html document. The Web browser causes a two-way TCP/IP connection to be established between the client and the host from which the desired Web document is available, and then generates and sends to the host a request header to establish an HTTP connection. The server on the host responds to the URL either by (i) following the directory path contained in the URL and opening the file containing the requested document; or (ii) running a CGI, or Common Gateway Interface, script; or (iii) detecting an error and generating an error document. The host then returns the document along with its file type to the client. After the client acknowledges receipt of the Web document, the host closes the HTTP connection even though the TCP/IP connection may be maintained by the service provider.
The term “HTTP” used above stands for Hypertext Transfer Protocol, which is a transfer protocol that sits on top TCP/IP and is a stateless protocol designed to transfer documents at a high rate of speed. As a stateless system, HTTP does not retain any information from one document transfer to the next. If additional documents are needed, each additional document must be transferred by opening a new HTTP connection, requesting the document, delivering the document, and closing the connection.
After the requested Web document is received and the HTTP connection closed, the browser interprets the page format from the imbedded html tags in a process known as parsing. Typically, the html tags format text, load images, and embeds hyperlinks. When the browser encounters an html tag that links to a different type of MIME file such as a sound clip or picture, the browser separately requests that sound clip or picture in another HTTP connection. Hence, if the Web page contains both a sound clip and an image, three requests are made—one for the original html page, one for the sound clip file, and one for the image file.
Although generally successful for many Web functions, the HTTP protocol is ineffective for enabling real-time functions such as chat over networks such as the Internet. However, chat is available over the Internet using the Internet Relay Chat protocol, or IRC. IRC uses the TCP/IP protocol in a client/server model. IRC client software is installed on the user side and integrated into the Web browser. One client initiates a channel by connecting to an IRC enabled server, which may or may not be on the same host as the Web server. Other clients join the channel by typing a join IRC command. The IRC server mediates the channel, passing each message to all channel members or to particular channel members, as determined by the originator of the message.
While IRC has had some success, its widespread use is hampered by several inconvenient aspects of the protocol. For example, IRC is cumbersome and does not support features common in Web browsers, such as hyperlinks and graphics.